package com.bsj.power.common.def.entity.personnel;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.bsj.crypt.annotation.SensitiveFiled;
import com.bsj.power.common.constant.NumericalConstants;
import com.bsj.power.common.def.entity.job.WorkPersonnel;
import com.bsj.power.common.def.vo.pls.httpVo.HttpPersonnelVO;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * @author LiJiaXin
 * @version 1.0.0
 * @description Personnel
 * @time 2024/4/18 15:47
 */
@Data
@TableName(value = "tab_personnel")
@NoArgsConstructor
public class Personnel {

    /**
     * 人员id
     */
    @TableId(value = "personnel_id", type = IdType.AUTO)
    private Integer personnelId;

    /**
     * 负责人id
     */
    @TableField(value = "director_id")
    private String directorId;

    /**
     * 人员状态
     */
    @TableField("status")
    private String status;

    /**
     * 姓名
     */
    @TableField("name")
    private String name;

    /**
     * 性别 1男 2女
     */
    @TableField("gender")
    private Integer gender;

    /**
     * 年龄
     */
    @TableField("age")
    private Integer age;

    /**
     * 所属公司
     */
    @TableField("company")
    private String company;

    /**
     * 科室
     */
    @TableField("division")
    private String division;

    /**
     * 处室
     */
    @TableField("dept")
    private String dept;

    /**
     * 工号
     */
    @TableField("emp_no")
    private String empNo;

    /**
     * 人员类型 1管理人员 2安全巡视人员 3运行人员 4维修人员 5其他人员
     */
    @TableField("type")
    private Integer type;

    /**
     * 岗位
     */
    @TableField("n_post")
    private String nPost;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;

    /**
     * 出生日期
     */
    @TableField("date_of_birth")
    private String dateOfBirth;

    /**
     * 身份证号码
     */
    @TableField("id_card_no")
    private String idCardNo;

    /**
     * 联系方式
     */
    @TableField("phone")
    private String phone;

    /**
     * 人员组id
     */
    @TableField("group_id")
    private Integer groupId;

    /**
     * 是否为关注人员 1是 2否
     */
    @TableField("is_attention")
    private Integer isAttention;

    /**
     * 人脸识别事件推送过来的人员id
     */
    @TableField("ext_event_person_no")
    private String extEventPersonNo;

//    /**
//     * 标签设备号（在平台已手动绑卡仍然被扫脸弹出的设备的设备号）
//     */
//    @TableField(exist = false)
//    private String deviceName;

    public Personnel(HttpPersonnelVO httpPersonnelVO) {
        this.status = httpPersonnelVO.getStatus();
        this.name = httpPersonnelVO.getDisplayname();
        this.company = httpPersonnelVO.getN_company();
        this.division = httpPersonnelVO.getN_division();
        this.dept = httpPersonnelVO.getN_dept();
        this.empNo = httpPersonnelVO.getWorkcode();
        //默认为男
        this.gender = NumericalConstants.ONE;
        //默认为管理员
        this.type = 1;
        this.nPost = httpPersonnelVO.getN_post();
        this.dateOfBirth = httpPersonnelVO.getN_age();
        this.idCardNo = httpPersonnelVO.getN_serno();
        this.phone = httpPersonnelVO.getN_mobile();
    }

    public Personnel(Integer personnelId, String extEventPersonNo) {
        this.personnelId = personnelId;
        this.extEventPersonNo = extEventPersonNo;
    }
}
